$(document).ready(function() {

    $("#desde").datepicker({
        changeMonth: true,
        numberOfMonths: 1,
        dateFormat: "dd/mm/yy",
        monthNamesShort: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
        dayNamesMin: ["Dom", "Lun", "Mar", "Mié", "Juv", "Vie", "Sáb"],
        onClose: function(selectedDate) {
            var auxFecha = (selectedDate).split("/");
            var now = new Date(auxFecha[2], (auxFecha[1] - 1), auxFecha[0]);
            now.setDate(now.getDate() + 1);
            var dd = now.getDate();
            var mm = now.getMonth() + 1; //January is 0!
            var yyyy = now.getFullYear();
            $("#hasta").datepicker("option", "minDate", dd + "/" + mm + "/" + yyyy);
            $("#cantidadNoches").val(cantidadDias(selectedDate, $("#hasta").val()));
        }
    });
    $("#hasta").datepicker({
        changeMonth: true,
        numberOfMonths: 1,
        dateFormat: "dd/mm/yy",
        monthNamesShort: ["Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"],
        dayNamesMin: ["Dom", "Lun", "Mar", "Mié", "Juv", "Vie", "Sáb"],
        onClose: function(selectedDate) {
            var auxFecha = (selectedDate).split("/");
            var now = new Date(auxFecha[2], (auxFecha[1] - 1), auxFecha[0]);
            now.setDate(now.getDate() - 1);
            var dd = now.getDate();
            var mm = now.getMonth() + 1; //January is 0!
            var yyyy = now.getFullYear();
            $("#desde").datepicker("option", "maxDate", dd + "/" + mm + "/" + yyyy);
            $("#cantidadNoches").val(cantidadDias($("#desde").val(), selectedDate));
        }
    });
    var auxFecha = ($("#desde").val()).split("/");
    var now = new Date(auxFecha[2], (auxFecha[1] - 1), auxFecha[0]);
    now.setDate(now.getDate() + 1);
    var dd = now.getDate();
    var mm = now.getMonth() + 1; //Enero es 0
    var yyyy = now.getFullYear();
    $("#hasta").datepicker("option", "minDate", dd + "/" + mm + "/" + yyyy);

    var auxFecha = ($("#hasta").val()).split("/");
    var now = new Date(auxFecha[2], (auxFecha[1] - 1), auxFecha[0]);
    now.setDate(now.getDate() - 1);
    var dd = now.getDate();
    var mm = now.getMonth() + 1; //Enero es 0
    var yyyy = now.getFullYear();
    $("#desde").datepicker("option", "maxDate", dd + "/" + mm + "/" + yyyy);


    if ($('#desde').is('[readonly]')) {
        $('#desde').datepicker("destroy");
    }

    if ($('#hasta').is('[readonly]')) {
        $('#hasta').datepicker("destroy");
    }

    cargarSelects();

    $("#desde").change(function(e) {
        $("#botonFormCuadrante1").removeAttr("disabled").addClass("btn-danger");
    });
    $("#hasta").change(function(e) {
        $("#botonFormCuadrante1").removeAttr("disabled").addClass("btn-danger");
    });
    $("#selectCantidadPersonas").change(function(e) {
        $("#botonFormCuadrante1").removeAttr("disabled").addClass("btn-danger");
    });

    $("#nacionalidad").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#tipoDocumento").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#nombre").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#primerApellido").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#segundoApellido").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#genero").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#fechaNacimiento").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#telefono").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#email").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#ocupacion").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#idEstadoCivil").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#proDes").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#paisProcedencia").change(function(e) {
        if ($(this).val() == "169") {
            $("#ciudadProcedencia").attr("name", "").hide();
            $("#listaCiudadesProcedencia").attr("name", "ciudadProcedencia").addClass("requeridoHuesped").val("").show();
        } else {
            $("#formProDes span.error").remove();
            $("#listaCiudadesProcedencia").attr("name", "").removeClass("requeridoHuesped").hide();
            $("#ciudadProcedencia").attr("name", "ciudadProcedencia").show();
        }
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#ciudadProcedencia").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#listaCiudadesProcedencia").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });

    $("#paisDestino").change(function(e) {
        if ($(this).val() == "169") {
            $("#ciudadDestino").attr("name", "").hide();
            $("#listaCiudadesDestino").attr("name", "ciudadDestino").addClass("requeridoHuesped").val("").show();
        } else {
            $("#formProDes span.error").remove();
            $("#listaCiudadesDestino").attr("name", "").removeClass("requeridoHuesped").hide();
            $("#ciudadDestino").attr("name", "ciudadDestino").show();
        }
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#ciudadDestino").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#listaCiudadesDestino").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });

    $("#paisEmpresa").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });

    $("#nombreEmpresa").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#telefonoEmpresa").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#direccionEmpresa").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });
    $("#emailEmpresa").change(function(e) {
        $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
    });

    $("#botonFormCuadrante1").click(function(e) {

        if (!validarFormularioAfter("form-actulizar-cuadrante-1")) {
            return false;
        }

        if ($("#desde").val() == $("#hasta").val()) {
            alert("Las fechas de ingreso y salida no pueden ser iguales.");
            return false;
        }
        $("#form-actulizar-cuadrante-1").submit();

    });

    $("#botonFormCuadrante3").click(function(e) {
        if ($(this).hasClass("disabled")) {
            return false;
        }
        $("#datosPersona .error").remove();
        $("#ayudaFechaNacimiento").hide();
        if ($("#buttonDatosPersona").hasClass("active")) {
            if ($("#nombre").val() == "") {
                $("#nombre").focus();
                $("#nombre").after("<span class='error'>*</span>");
                return false;
            }
            if (document.getElementById("fechaNacimiento").value != "") {
                var expresionRegular = /^\d{2}\/\d{2}\/\d{4}$/;
                if (!(document.getElementById("fechaNacimiento").value).match(expresionRegular)) {
                    $("#ayudaFechaNacimiento").show();
                    return  false;
                }
            }
        }
        else if ($("#buttonDatosEmpresa").hasClass("active")) {
            if ($("#nombreEmpresa").val() == "") {
                $("#nombreEmpresa").after();
                $("#nombreEmpresa").before("<span class='error'>*</span>");
                return false;
            }
        }
        $("#quienPaga").submit();
    });

    $("#proDes").change(function() {
        if ($(this).is(':checked')) {
            $("#formProDes").show();
        }
        else {
            $("#formProDes").hide();
        }
    });


    /* Evento disparador del ajax */
    $("#documento").change(function() {
        var identificacion = $("#documento").val();
        var nacionalidad = $("#nacionalidad").val();
        if (identificacion != "" && nacionalidad != "") {
            cargarCliente(identificacion, nacionalidad, "1");
        }
    });
    $("#nacionalidad").change(function() {
        var identificacion = $("#documento").val();
        var nacionalidad = $("#nacionalidad").val();
        if (identificacion != "" && nacionalidad != "") {
            cargarCliente(identificacion, nacionalidad, "1");
        }
    });

    $("#identificacionEmpresa").change(function() {
        var identificacionEmpresa = $("#identificacionEmpresa").val();
        var paisEmpresa = $("#paisEmpresa").val();
        if (identificacionEmpresa != "" && paisEmpresa != "") {
            cargarCliente(identificacionEmpresa, paisEmpresa, "2");
        }
    });

    $("#paisEmpresa").change(function() {
        var identificacionEmpresa = $("#identificacionEmpresa").val();
        var paisEmpresa = $("#paisEmpresa").val();
        if (identificacionEmpresa != "" && paisEmpresa != "") {
            cargarCliente(identificacionEmpresa, paisEmpresa, "2");
        }
    });
    /*----------------*/



    function cargarSelects() {
        var capacidadEstandar = $("#selectCantidadPersonas").attr("data-capacidadEstandar");
        var capacidadAdicional = $("#selectCantidadPersonas").attr("data-capacidadAdicional");
        var seleccion = $("#selectCantidadPersonas").attr("data-seleccion");
        capacidadEstandar = parseInt(capacidadEstandar);
        capacidadAdicional = parseInt(capacidadAdicional);
        var select = [];
        for (var i = 1; i <= capacidadEstandar; i++) {
            select.push("<option value='" + i + "'>" + i + "</option>");
        }
        for (var i = (capacidadEstandar + 1); i <= (capacidadEstandar + capacidadAdicional); i++) {
            select.push("<option class='selectCapacidadAdicional' value='" + i + "'>" + i + "</option>");
        }
        select = select.join("");
        if ($("#selectCantidadPersonas").is('[readonly]')) {
            select = "<option value='" + seleccion + "'>" + seleccion + "</option>"
        }
        document.getElementById('selectCantidadPersonas').innerHTML = select;
        $("#selectCantidadPersonas option[value=" + seleccion + "]").prop("selected", "selected");



        if ($("#buttonDatosPersona").hasClass("active")) {//Si el titular es una persona
            var seleccion = $("#nacionalidad").data("seleccion");
            $("#nacionalidad option[value=" + seleccion + "]").prop("selected", "selected");

            seleccion = $("#nacionalidad").data("seleccion");
            $("#nacionalidad option[value=" + seleccion + "]").prop("selected", "selected");

            seleccion = $("#tipoDocumento").data("seleccion");
            $("#tipoDocumento option[value=" + seleccion + "]").prop("selected", "selected");

            seleccion = $("#genero").data("seleccion");
            $("#genero option[value=" + seleccion + "]").prop("selected", "selected");

            seleccion = $("#idEstadoCivil").data("seleccion");
            $("#idEstadoCivil option[value=" + seleccion + "]").prop("selected", "selected");

            if ($("#proDes").is(':checked')) {
                seleccion = $("#paisProcedencia").data("seleccion");
                $("#paisProcedencia option[value=" + seleccion + "]").prop("selected", "selected");
                if (seleccion == "169") {
                    var ciudadSeleccionada = $("#ciudadProcedencia").val();
                    $("#ciudadProcedencia").val("").attr("name", "").hide();
                    $("#listaCiudadesProcedencia").addClass("requeridoHuesped").show();
                    $("#listaCiudadesProcedencia option[value=" + ciudadSeleccionada + "]").prop("selected", "selected");
                }

                seleccion = $("#paisDestino").data("seleccion");
                $("#paisDestino option[value=" + seleccion + "]").prop("selected", "selected");
                if (seleccion == "169") {
                    var ciudadDestino = $("#ciudadDestino").val();
                    $("#ciudadDestino").val("").attr("name", "").hide();
                    $("#listaCiudadesDestino").addClass("requeridoHuesped").show();
                    $("#listaCiudadesDestino option[value=" + ciudadDestino + "]").prop("selected", "selected");
                }
                $("#formProDes").show();
            }

        } else {//Es una empresa
            var seleccion = $("#paisEmpresa").data("seleccion");
            $("#paisEmpresa option[value=" + seleccion + "]").prop("selected", "selected");
        }
    }

    $("#buttonDatosPersona").click(function(e) {
        if ($(this).hasClass("active")) {
            return false;
        }
        resetCrearReserva();
        $("#datosEmpresa").hide();
        $("#datosPersona").show();
        $("#quien").val("persona");
    });

    $("#buttonDatosEmpresa").click(function(e) {
        if ($(this).hasClass("active")) {
            return false;
        }
        resetCrearReserva();
        $("#datosPersona").hide();
        $("#datosEmpresa").show();
        $("#quien").val("empresa");
    });
    function resetCrearReserva() {
        $("#quienPaga .error").remove();
        $("#quienPaga").find(':input:not(#botonFormCuadrante3,#idReserva,#quien)').each(function() {
            var elemento = this;
            elemento.value = "";
        });
        $("#ayudaFechaNacimiento").hide();
        $("#formProDes").hide();
        $("#proDes").prop('checked', false);
    }
    function cargarCliente(identificacion, nacionalidad, tipo) {
        $.ajax({
            url: "cargarCliente",
            data: {
                identificacion: identificacion,
                nacionalidad: nacionalidad,
                tipo: tipo
            },
            type: 'POST',
            success: function(data) {
                if (tipo == "1") {
                    if (data != "[]") {
                        data = JSON.parse(data);
                        $("#idCliente").val(data[0]["id_cliente"]);
                        $("#tipoDocumento").val(data[0]["id_documento"]);
                        $("#nombre").val(data[0]["nombre"]);
                        $("#primerApellido").val(data[0]["primer_apellido"]);
                        $("#segundoApellido").val(data[0]["segundo_apellido"]);
                        $("#genero").val(data[0]["genero"]);
                        var fechaNacimiento = (data[0]["fecha_nacimiento"]).split('-')
                        $("#fechaNacimiento").val(fechaNacimiento[2] + "/" + fechaNacimiento[1] + "/" + fechaNacimiento[0]);
                        $("#telefono").val(data[0]["telefono"]);
                        $("#email").val(data[0]["email"]);
                        $("#idEstadoCivil").val(data[0]["id_estado_civil"]);
                        $("#ocupacion").val(data[0]["ocupacion"]);
                        $("#resultadoAjax").css("color", "#669533");
                        $("#resultadoAjax").show();
                        $("#formProDes").hide();
                        $("#proDes").prop('checked', false);
                    } else {
                        // $("#idCliente").val("");
                        //   resetEnCaliente();
                    }

                }
                else if (tipo == "2") {
                    if (data != "[]") {
                        data = JSON.parse(data);
                        $("#idCliente").val(data[0]["id_cliente"]);
                        $("#nombreEmpresa").val(data[0]["nombre"]);
                        $("#telefonoEmpresa").val(data[0]["telefono"]);
                        $("#direccionEmpresa").val(data[0]["direccion"]);
                        $("#emailEmpresa").val(data[0]["email"]);
                        $("#resultadoAjax").css("color", "#669533");
                        $("#resultadoAjax").show();
                    } else {
                        $("#idCliente").val("");
                        resetEnCaliente();
                    }
                }
                $("#botonFormCuadrante3").removeAttr("disabled").addClass("btn-danger");
            }
        });
    }


    function resetEnCaliente() {//persona o empresa
        $("#quienPaga").find(':input:not(.preservar,#idReserva,#quien)').each(function() {
            var elemento = this;
            elemento.value = "";
        });
        $("#ayudaFechaNacimiento").hide();
        $("#formDesPro").hide();
        $("#desPro").prop('checked', false);
    }



    $("#facturacion .impuestos").change(function(e) {
        var idReserva = $("#idReserva").val();
        var alojamiento = $("#alojamiento").val();
        alojamiento = parseFloat(alojamiento);
        if ($(this).is(":checked")) {
            var impuesto = $(this).data("valor");
            impuesto = parseFloat(impuesto);

            var totalImpuesto = impuesto * alojamiento / 100;

        } else {
            var totalImpuesto = 0;
        }
        $("#valorImpuesto").val(totalImpuesto);
        $("#actualizarImpuestos").submit();
    });




    $("#registrarPago").click(function(e) {
        $("#formRegistrarPago .error").remove();
        $("#valorPago").val("");
        $("#descripcionPago").val("");
        $("#modoPago").val("");
    });
    $("#botonRegistrarPago").click(function(e) {
        if (!validarFormularioAfter("formRegistrarPago")) {
            return false;
        }
        $("#formRegistrarPago").submit();
    });
    $("#valorPago").change(function(e) {
        var pendiente = parseInt($("#pendiente").val());
        var valorPago = parseInt($(this).val());
        if (valorPago > pendiente) {
            $(this).val("");
        }

    });
});


